home *** CD-ROM | disk | FTP | other *** search
- function reset()
- {
- setSexo(mSexo);
- mTargetArray = new Array();
- stopMoving();
- }
- function setSexo(m)
- {
- mSexo = m;
- gotoAndStop(m + 1);
- stopdown();
- mHandLeft_mc.setInHand();
- liberaMao(mHandLeft_mc);
- mHandRight_mc.setInHand();
- liberaMao(mHandRight_mc);
- mbHandVisible = true;
- mbSwapHands = false;
- mbDiagnosing = false;
- }
- function hasEmptyHand()
- {
- return mHandLeft_mc.isVazia() || mHandRight_mc.isVazia();
- }
- function isCarrying()
- {
- return !mHandLeft_mc.isVazia() || !mHandRight_mc.isVazia();
- }
- function hasReceipt()
- {
- return mHandLeft_mc.isReceita() || mHandRight_mc.isReceita();
- }
- function entregaReceitas()
- {
- var _loc1_ = new Array();
- if(mHandLeft_mc.isReceita())
- {
- receita = mHandLeft_mc.getReceita();
- _loc1_.push(receita);
- liberaMao(mHandLeft_mc);
- }
- if(mHandRight_mc.isReceita())
- {
- receita = mHandRight_mc.getReceita();
- _loc1_.push(receita);
- liberaMao(mHandRight_mc);
- }
- updateItem();
- return _loc1_;
- }
- function getMaoVazia()
- {
- if(!mHandLeft_mc._visible)
- {
- return mHandLeft_mc;
- }
- if(!mHandRight_mc._visible)
- {
- return mHandRight_mc;
- }
- return null;
- }
- function pegaLencol()
- {
- maovazia = getMaoVazia();
- if(maovazia != null)
- {
- maovazia.setLencol();
- maovazia._visible = true;
- if(maovazia == mHandLeft_mc)
- {
- mMed_mc.addEsquerda();
- }
- else
- {
- mMed_mc.addDireita();
- }
- updateItem();
- }
- }
- function pegaRemedio(receita)
- {
- maovazia = getMaoVazia();
- if(maovazia != null)
- {
- maovazia.setRemedio(receita);
- maovazia._visible = true;
- if(maovazia == mHandLeft_mc)
- {
- mMed_mc.addEsquerda();
- }
- else
- {
- mMed_mc.addDireita();
- }
- updateItem();
- }
- }
- function hasLencol()
- {
- return mHandLeft_mc.isLencol() || mHandRight_mc.isLencol();
- }
- function liberaLencol()
- {
- count = 0;
- if(mHandLeft_mc.isLencol())
- {
- liberaMao(mHandLeft_mc);
- count++;
- }
- if(mHandRight_mc.isLencol())
- {
- liberaMao(mHandRight_mc);
- count++;
- }
- updateItem();
- return count;
- }
- function swapHands()
- {
- var _loc1_ = {x:mHandLeft_mc._x,y:mHandLeft_mc._y};
- var _loc2_ = {x:mHandRight_mc._x,y:mHandRight_mc._y};
- mHandRight_mc._x = _loc1_.x;
- mHandRight_mc._y = _loc1_.y;
- mHandLeft_mc._x = _loc2_.x;
- mHandLeft_mc._y = _loc2_.y;
- mbSwapHands = !mbSwapHands;
- }
- function updateItem()
- {
- }
- function stopleft()
- {
- if(mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.stopleft();
- }
- function stopright()
- {
- if(mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.stopright();
- }
- function stopup()
- {
- if(!mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.stopup();
- }
- function stopdown()
- {
- if(mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.stopdown();
- }
- function walkleft()
- {
- if(mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.walkleft();
- }
- function walkright()
- {
- if(mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.walkright();
- }
- function walkup()
- {
- if(!mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.walkup();
- }
- function walkdown()
- {
- if(mbSwapHands)
- {
- swapHands();
- }
- mMed_mc.walkdown();
- }
- function hey()
- {
- mMed_mc.hey();
- }
- function dontknow()
- {
- mMed_mc.dontknow();
- }
- function diagnose(paciente)
- {
- mMed_mc.diagnose();
- hideHands();
- mbDiagnosing = true;
- mDiagnoseTime = getTimer();
- mPaciente = paciente;
- mPaciente.diagnosing();
- }
- function isDiagnosing()
- {
- return mbDiagnosing;
- }
- function hasMedicineOf(paciente)
- {
- if(mHandLeft_mc.isRemedio())
- {
- receita = mHandLeft_mc.getReceita();
- if(receita.id == paciente.getID())
- {
- return true;
- }
- }
- if(mHandRight_mc.isRemedio())
- {
- receita = mHandRight_mc.getReceita();
- if(receita.id == paciente.getID())
- {
- return true;
- }
- }
- return false;
- }
- function giveMedicineTo(paciente)
- {
- if(mHandLeft_mc.isRemedio())
- {
- receita = mHandLeft_mc.getReceita();
- if(receita.id == paciente.getID())
- {
- liberaMao(mHandLeft_mc);
- }
- }
- if(mHandRight_mc.isRemedio())
- {
- receita = mHandRight_mc.getReceita();
- if(receita.id == paciente.getID())
- {
- liberaMao(mHandRight_mc);
- }
- }
- paciente.receiveMedicine();
- }
- function liberaPaciente(paciente)
- {
- if(mHandLeft_mc.isRemedio() || mHandLeft_mc.isReceita())
- {
- receita = mHandLeft_mc.getReceita();
- if(receita.id == paciente.getID())
- {
- liberaMao(mHandLeft_mc);
- }
- }
- if(mHandRight_mc.isRemedio() || mHandRight_mc.isReceita())
- {
- receita = mHandRight_mc.getReceita();
- if(receita.id == paciente.getID())
- {
- liberaMao(mHandRight_mc);
- }
- }
- }
- function liberaMao(mao)
- {
- mao.setID(-1);
- mao._visible = false;
- if(mao == mHandLeft_mc)
- {
- mMed_mc.removeEsquerda();
- }
- else
- {
- mMed_mc.removeDireita();
- }
- }
- function addZOrder(obj)
- {
- mZOrderObjects.push(obj);
- }
- function updateZOrder()
- {
- if(this._y < -120)
- {
- this.swapDepths(_parent.mCamaArray[1].getDepth() - 5);
- }
- else if(this._y > 0)
- {
- this.swapDepths(_parent.mCamaArray[3].getDepth() + 5);
- }
- else
- {
- this.swapDepths(_parent.mCamaArray[1].getDepth() + 5);
- }
- }
- function moveToPosition(posX, posY)
- {
- var _loc1_ = {x:posX,y:posY};
- if(mTargetArray.length == 0)
- {
- mTargetX = posX;
- mTargetY = posY;
- }
- mTargetArray.push(_loc1_);
- mbMoving = true;
- }
- function stopMoving()
- {
- mDirX = 0;
- mDirY = 0;
- mbMoving = false;
- mTargetArray.shift();
- if(mTargetArray.length > 0)
- {
- mbMoving = true;
- mTargetX = mTargetArray[0].x;
- mTargetY = mTargetArray[0].y;
- defineDirection();
- }
- else
- {
- stopdown();
- }
- }
- function isMoving()
- {
- return mbMoving;
- }
- function addObstacle(obst)
- {
- mObstacles.push(obst);
- }
- function defineDirection(px, py)
- {
- if(mTargetArray.length == 0)
- {
- return undefined;
- }
- if(px == undefined)
- {
- px = this._x;
- }
- if(py == undefined)
- {
- py = this._y;
- }
- if(px == mTargetX && py == mTargetY)
- {
- stopMoving();
- }
- else if(px == mTargetX)
- {
- if(py > mTargetY)
- {
- moveUp();
- }
- else
- {
- moveDown();
- }
- }
- else if(py == mTargetY)
- {
- if(px > mTargetX)
- {
- moveLeft();
- }
- else
- {
- moveRight();
- }
- }
- else if(px > mTargetX)
- {
- if(py > mTargetY)
- {
- moveLeftUp();
- }
- else
- {
- moveLeftDown();
- }
- }
- else if(py > mTargetY)
- {
- moveRightUp();
- }
- else
- {
- moveRightDown();
- }
- }
- function collideUp(x, y)
- {
- var _loc3_ = false;
- i = 0;
- while(i < mObstacles.length)
- {
- if(mObstacles[i].hitTest(x,y - 10,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x - 12,y - 3,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x + 12,y - 3,true))
- {
- return true;
- }
- i++;
- }
- return false;
- }
- function collideDown(x, y)
- {
- var _loc3_ = false;
- i = 0;
- while(i < mObstacles.length)
- {
- if(mObstacles[i].hitTest(x,y + 10,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x - 12,y + 6,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x + 12,y + 6,true))
- {
- return true;
- }
- i++;
- }
- return false;
- }
- function collideLeft(x, y)
- {
- var _loc3_ = false;
- i = 0;
- while(i < mObstacles.length)
- {
- if(mObstacles[i].hitTest(x - 18,y,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x - 18,y - 8,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x - 18,y + 6,true))
- {
- return true;
- }
- i++;
- }
- return false;
- }
- function collideRight(x, y)
- {
- var _loc3_ = false;
- i = 0;
- while(i < mObstacles.length)
- {
- if(mObstacles[i].hitTest(x + 18,y,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x + 18,y - 6,true))
- {
- return true;
- }
- if(mObstacles[i].hitTest(x + 18,y + 8,true))
- {
- return true;
- }
- i++;
- }
- return false;
- }
- function moveUp()
- {
- mDirX = 0;
- mDirY = -1;
- walkup();
- }
- function moveLeft()
- {
- mDirX = -1;
- mDirY = 0;
- walkleft();
- }
- function moveDown()
- {
- mDirX = 0;
- mDirY = 1;
- walkdown();
- }
- function moveRight()
- {
- mDirX = 1;
- mDirY = 0;
- walkright();
- }
- function moveLeftUp()
- {
- mDirX = -1;
- mDirY = -1;
- walkleft();
- }
- function moveLeftDown()
- {
- mDirX = -1;
- mDirY = 1;
- walkleft();
- }
- function moveRightUp()
- {
- mDirX = 1;
- mDirY = -1;
- walkright();
- }
- function moveRightDown()
- {
- mDirX = 1;
- mDirY = 1;
- walkright();
- }
- function pausa()
- {
- mbPaused = true;
- }
- function continua(elapsed)
- {
- mDiagnoseTime += elapsed;
- mbPaused = false;
- }
- function hideHands()
- {
- mbHandVisible = false;
- mHandLeft_mc._visible = false;
- mHandRight_mc._visible = false;
- mMed_mc.removeEsquerda();
- mMed_mc.removeDireita();
- }
- function showHands()
- {
- mbHandVisible = true;
- if(!mHandLeft_mc.isVazia())
- {
- mHandLeft_mc._visible = true;
- mMed_mc.addEsquerda();
- }
- if(!mHandRight_mc.isVazia())
- {
- mHandRight_mc._visible = true;
- mMed_mc.addDireita();
- }
- }
- function equals(v1, v2)
- {
- if(Math.abs(v1 - v2) < 0.1)
- {
- return true;
- }
- return false;
- }
- stop();
- var mSexo;
- if(mSexo == undefined)
- {
- setSexo(0);
- }
- var mbDiagnosing;
- var mDiagnoseTime;
- var mPaciente;
- var mbMoving = false;
- var mTargetX = 0;
- var mTargetY = 0;
- var mDirX = 0;
- var mDirY = 0;
- var mObstacles = new Array();
- var MIN_SPEED = 10;
- var MAX_SPEED = 20;
- var DELTA_SPEED = 10;
- var mZOrderObjects = new Array();
- var mLastZChange = null;
- var mbInAnim = false;
- var mNextAnim = 0;
- mHandLeft_mc._visible = false;
- mHandRight_mc._visible = false;
- var mbHandVisible = true;
- var mbSwapHands = false;
- var mTargetArray = new Array();
- var mbPaused = false;
- this.onEnterFrame = function()
- {
- if(mbPaused)
- {
- return undefined;
- }
- now = getTimer();
- if(!mbMoving)
- {
- if(mbDiagnosing)
- {
- if(now - mDiagnoseTime > 5000)
- {
- mbDiagnosing = false;
- stopleft();
- showHands();
- var _loc3_ = {bed:mPaciente.getCamaID(),tipo:mPaciente.getTipo(),id:mPaciente.getID()};
- maoVazia = getMaoVazia();
- if(maoVazia != null)
- {
- maoVazia.setReceita(_loc3_);
- maoVazia._visible = true;
- if(maoVazia == mHandLeft_mc)
- {
- mMed_mc.addEsquerda();
- }
- else
- {
- mMed_mc.addDireita();
- }
- updateItem();
- }
- mbInAnim = false;
- mNextAnim = 0;
- }
- }
- else if(!isCarrying())
- {
- if(!mbInAnim && mNextAnim == 0)
- {
- waitTime = Math.floor(Math.random() * 7000);
- mNextAnim = now + waitTime;
- }
- if(now >= mNextAnim && mNextAnim > 0)
- {
- mbInAnim = true;
- mNextAnim = 0;
- if(Math.random() > 0.4)
- {
- dontknow();
- }
- else
- {
- hey();
- }
- }
- }
- }
- else if(!equals(this._x,mTargetX) || !equals(this._y,mTargetY))
- {
- if(mDirX == 0 && mDirY == 0)
- {
- defineDirection();
- }
- else
- {
- dirspeed = MAX_SPEED;
- if(mDirX * mDirY != 0)
- {
- dirspeed = 0.7071 * MAX_SPEED;
- }
- newX = this._x + mDirX * dirspeed;
- newY = this._y + mDirY * dirspeed;
- if(mDirX != 0 && (newX - mTargetX) * (this._x - mTargetX) <= 0)
- {
- newX = mTargetX;
- if(mDirY != 0 && (newY - mTargetY) * (this._y - mTargetY) <= 0)
- {
- newY = mTargetY;
- stopMoving();
- }
- else if(!equals(newY,mTargetY))
- {
- defineDirection(newX,newY);
- }
- else
- {
- stopMoving();
- }
- }
- else if(mDirY != 0 && (newY - mTargetY) * (this._y - mTargetY) <= 0)
- {
- newY = mTargetY;
- if(!equals(newX,mTargetX))
- {
- defineDirection(newX,newY);
- }
- }
- pos = new Object();
- pos.x = newX;
- pos.y = newY;
- _parent.localToGlobal(pos);
- speed = MAX_SPEED;
- collision = false;
- if(mDirY < 0)
- {
- collision = collideUp(pos.x,pos.y);
- while(collision && speed > MIN_SPEED)
- {
- speed -= DELTA_SPEED;
- newY = this._y + mDirY * speed;
- pos.x = newX;
- pos.y = newY;
- _parent.localToGlobal(pos);
- collision = collideUp(pos.x,pos.y);
- }
- if(collision)
- {
- mDirY = 0;
- if(equals(this._x,mTargetX))
- {
- stopMoving();
- }
- else if(newX < mTargetX)
- {
- moveRight();
- }
- else if(newX > mTargetX)
- {
- moveLeft();
- }
- else
- {
- stopMoving();
- }
- }
- }
- else if(mDirY > 0)
- {
- collision = collideDown(pos.x,pos.y);
- while(collision && speed > MIN_SPEED)
- {
- speed -= DELTA_SPEED;
- newY = this._y + mDirY * speed;
- pos.x = newX;
- pos.y = newY;
- _parent.localToGlobal(pos);
- collision = collideDown(pos.x,pos.y);
- }
- if(collision)
- {
- mDirY = 0;
- if(equals(this._x,mTargetX))
- {
- stopMoving();
- }
- else if(newX < mTargetX)
- {
- moveRight();
- }
- else if(newX > mTargetX)
- {
- moveLeft();
- }
- else
- {
- stopMoving();
- }
- }
- }
- else if(mDirX < 0)
- {
- collision = collideLeft(pos.x,pos.y);
- while(collision && speed > MIN_SPEED)
- {
- speed -= DELTA_SPEED;
- newX = this._x + mDirX * speed;
- pos.x = newX;
- pos.y = newY;
- _parent.localToGlobal(pos);
- collision = collideLeft(pos.x,pos.y);
- }
- if(collision)
- {
- mDirX = 0;
- if(equals(this._y,mTargetY))
- {
- stopMoving();
- }
- else if(newY < mTargetY)
- {
- moveDown();
- }
- else if(newY > mTargetY)
- {
- moveUp();
- }
- else
- {
- stopMoving();
- }
- }
- }
- else if(mDirX > 0)
- {
- collision = collideRight(pos.x,pos.y);
- while(collision && speed > MIN_SPEED)
- {
- speed -= DELTA_SPEED;
- newX = this._x + mDirX * speed;
- pos.x = newX;
- pos.y = newY;
- _parent.localToGlobal(pos);
- collision = collideRight(pos.x,pos.y);
- }
- if(collision)
- {
- mDirX = 0;
- if(equals(this._y,mTargetY))
- {
- stopMoving();
- }
- else if(newY < mTargetY)
- {
- moveDown();
- }
- else if(newY > mTargetY)
- {
- moveUp();
- }
- else
- {
- stopMoving();
- }
- }
- }
- if(!collision)
- {
- this._x = newX;
- this._y = newY;
- updateItem();
- updateZOrder();
- }
- }
- }
- else
- {
- stopMoving();
- }
- };
-